package com.java.second_goods.service;

import com.java.second_goods.entity.Favorite;

import java.util.List;

/**
 * 收藏 服务层
 */
public interface FavoriteService {
    /**
     * 查询收藏信息
     *
     * @param id 收藏ID
     * @return 收藏信息
     */
    Favorite selectFavoriteById(Integer id);

    /**
     * 查询收藏列表
     *
     * @param favorite 收藏信息
     * @return 收藏集合
     */
    List<Favorite> selectFavoriteList(Favorite favorite);

    /**
     * 根据用户ID查询收藏列表
     *
     * @param userId 用户ID
     * @param type 收藏类型
     * @return 收藏列表
     */
    List<Favorite> selectFavoritesByUserId(Integer userId, String type);

    /**
     * 新增收藏
     *
     * @param favorite 收藏信息
     * @return 结果
     */
    int insertFavorite(Favorite favorite);

    /**
     * 删除收藏信息
     *
     * @param id 收藏ID
     * @return 结果
     */
    int deleteFavoriteById(Integer id);

    /**
     * 批量删除收藏信息
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteFavoriteByIds(Integer[] ids);

    /**
     * 检查是否已收藏
     *
     * @param userId 用户ID
     * @param itemId 收藏项ID
     * @param type 收藏类型
     * @return 是否已收藏
     */
    Boolean checkFavorite(Integer userId, Integer itemId, String type);

    /**
     * 删除收藏
     *
     * @param userId 用户ID
     * @param itemId 收藏项ID
     * @param type 收藏类型
     * @return 结果
     */
    int deleteFavorite(Integer userId, Integer itemId, String type);
}